<?php
	require_once ("RegistrationView.php");
	require_once ("RegistrationModel.php");
	class RegistrationController{	
		public function DoControl(Database $db){
			$reg_view = new RegistrationView();
			$reg_model = new RegistrationModel($db);
			$reg_message = RegistrationView::REG_NO_MESSAGE;
			$return = '';
			// Skriver ut Registreringsformuläret.
			$return = $reg_view->DoRegistrationBox($reg_message);
			// Kontrollerar om användaren har klickat på Register-knappen.
			if ($reg_view->TriedToInsert()){
				// Kontrollerar om användaren matar in ett användarnamn som redan finns i databasen.
				if($reg_model->DoMatch($reg_view->GetRegUsername()) == true){				
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_USER_EXISTS);
				// Kontrollerar om inmatat användarnamn följer valideringsmönstret.			
				}else if($reg_model->ValidateUsername($reg_view->GetRegUsername()) == false){				
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_USER_WRONG_INPUT);
				// Kontrollerar om inmatat lösenord följer valideringsmönstret.			
				}else if($reg_model->ValidatePassword($reg_view->GetRegPassword()) == false){	
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_PASS_WRONG_INPUT);
				// Kontrollerar om inmatat lösenord matchar bekräftelsen.			
				}else if($reg_model->ConfirmPassword($reg_view->GetRegConfirm()) == false){	
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_NO_MATCH);
				// Registrerar användaren om inmatningen passerar alla if-satser ovanför.			
				}else if($reg_model->DoInsert($reg_view->GetRegUserName(), $reg_view->GetRegPassword()) == true){
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_SUCCESS);
				}				
			}
			return $return . $reg_message;
		}
	}
?>